package com.tanhua.dubbo.api.mongo;

import com.tanhua.model.mongo.UserLike;
import com.tanhua.model.vo.PageResult;

import java.util.List;

public interface UserLikeApi {

    /**
     * 保存用户喜欢和不喜欢的用户
     * @param userLike
     * @return
     */
    boolean save(UserLike userLike);

    /**
     * 查询好友喜欢的用户
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    PageResult<UserLike> findLikeByUserId(Long userId, Long page, Long pageSize);

    /**
     * 用户是否相互喜欢
     * @param userId
     * @param likeUserId
     * @return
     */
    boolean isLike(Long userId, Long likeUserId);

    /**
     * 查找粉丝
     * @param userId
     * @param page
     * @param pageSize
     * @return
     */
    PageResult<UserLike> findFansByLikeUserId(Long userId, Long page, Long pageSize);

    /**
     * 查询相互喜欢的数量
     * @param userId
     * @return
     */
    Integer findEachLoveCount(Long userId);

    /**
     * 查询喜欢的数量
     * @param userId
     * @return
     */
    Integer findLoveCount(Long userId);

    /**
     * 查询粉丝的数量
     * @param userId
     * @return
     */
    Integer findFansCount(Long userId);

    /**
     * 获取所有不喜欢用户
     * @param userId
     * @return
     */
    List<UserLike> dislike(Long userId);

    /**
     * 获取所有喜欢和不喜欢用户
     * @param userId
     * @return
     */
    List<UserLike> exist(Long userId);

    List<Long> findIsLikeUser(Long userId, List<Long> likeUserIds);
}
